package com.ftg.learn.chapter04;

/**
 * 双层结构
 *
 * @author kangjx
 * @date 2022/12/15
 */
public class LearnForDouble {

    /**
     * 打印指定列数有*
     *
     * @param l
     */
    public static void printStart(int l) {
        for (int i = 0; i < l; i++) {
            System.out.print("*\t");
        }
        System.out.println();
    }

    /**
     * 打印指定行数与列数
     *
     * @param h
     * @param l
     */
    public static void printHang(int h, int l) {
        for (int i = 0; i < h; i++) {
            printStart(l);
        }
    }

    /**
     * 图形题
     */
    public static void totalReport() {
        //双层for
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9 - i; j++) {
                System.out.print("*\t");
            }
            System.out.println();
        }
    }

    public static void myPrint() {
        for (int i = 0; i < 9; i++) {
            for (int i1 = 0; i1 < 9; i1++) {
                System.out.print((i == i1) ? "*\t" : "_\t");
            }
            System.out.println();
        }
    }

    /**
     * 核心思想
     */
    public static void myPrint1() {
        for (int i = 0; i < 9; i++) {
            for (int i1 = 0; i1 < 9; i1++) {
                System.out.print((i == 8 - i1 || i == i1 || i == 4 || i1 == 4) ? "*\t" : " \t");
            }
            System.out.println();
        }
    }

    public static void myPrint2() {
        for (int i = 0; i < 9; i++) {
            for (int i1 = 0; i1 < 9; i1++) {
                System.out.print(i1 < (9 >> 1) - i || i1 > (9 >> 1) + i || (i > 4 && i1 < i - 4)  ? " \t" : "*\t");
            }
            System.out.println();
        }
    }

    /**
     * 数字
     */
    public static void totalReport1() {
        //双层for
        int sum = 1;
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9 - i; j++) {
                System.out.print(sum++ + "\t");
            }
            System.out.println();
        }
    }

    public static void totalReport2() {
        //双层for
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9 - i; j++) {
                System.out.print((i + 1 + j) + "\t");
            }
            System.out.println();
        }
    }

    /**
     * 处理 回文数问题
     */

    /**
     * 用来求当前给定的X为几位正整数
     * @param x  指定数字
     * @return  整数
     */
//    public static int getLen(int x){
//        int n = 0;
//        int len = 0;
//        int ci = 0;
//        do{
//            int temp = (int)Math.pow(10,ci++);
//            n = x / temp;
//            len ++;
//        }while (n > 0);
//        return len - 1;
//    }
    /**
     * 用来求当前给定的X为几位正整数
     * @param x  指定数字
     * @return  整数
     */
    public static int getLen(int x){
        int num = 1;
        while((x = x / 10) > 0){
            num++;
        }
        return num;
    }

    /**
     * 双向判断
     * @param x  指定数位
     * @return
     */
    public static boolean isPalindrome(int x){

        if( x < 0 ){
            return false;
        }

        //求出总位数
        int len = getLen(x);
        boolean it = true;
        for(int s = 0, l = len;s < l;s++,l--){
            //公式 : x % 10 / 1
            int start = x % (int)Math.pow(10,s + 1) / (int)Math.pow(10,s);
            int end = x % (int)Math.pow(10,l) / (int)Math.pow(10,l-1);
            if(start != end){
                it = false;
                break;
            }
        }
        return it;
    }

    //你要把main去掉，转换成为junit
    public static void main(String[] args) {
        isPalindrome(123);
    }

}
